#ifndef __CLIENT_H__
#define __CLIENT_H__

#include <iostream>
#include <string>
#include <cstring>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>

using namespace std;

class Client
{
private:
	string server_ip; // 服务器 IP 地址
	int server_port;  // 服务器端口号
	int client_fd;	  // 客户端套接字文件描述符
public:
	Client(const string &ip, int port);

	~Client();

	// 连接服务器
	bool connectToServer();
	// 接收服务器发送的数据
	string receiveData(string &data);

	// 向服务器发送数据
	void sendData(const string &data);

	// 重载 << 操作符，向服务器发送数据
	Client &operator<<(const std::string &data);

	// 重载 >> 操作符，从服务器接收数据
	Client &operator>>(std::string &data);

	// 关闭客户端连接
	void closeConnection();
};

#endif